<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
  margin: 0;
  padding: 0;
}
#mindmap {
  display: block;
  width: 100vw;
  height: 100vh;
  font-weight: 400 16px/20px sans-serif;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.14.3/dist/style.min.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://cdn.jsdelivr.net/npm/d3@6.7.0"></script><script src="https://cdn.jsdelivr.net/npm/markmap-view@0.14.3"></script><script src="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.14.3/dist/index.umd.min.js"></script><script>(r => {
          setTimeout(r);
        })(() => {
  const {
    markmap,
    mm
  } = window;
  const toolbar = new markmap.Toolbar();
  toolbar.attach(mm);
  const el = toolbar.render();
  el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
  document.body.append(el);
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
        const markmap = getMarkmap();
        window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
      })(() => window.markmap,null,{"type":"root","depth":0,"content":"","children":[{"type":"heading","depth":1,"payload":{"lines":[0,1]},"content":"1.微服务简介","children":[{"type":"heading","depth":2,"payload":{"lines":[1,2]},"content":"1.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[2,3]},"content":"1.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[3,4]},"content":"1.3.微服务架构图"},{"type":"heading","depth":2,"payload":{"lines":[4,5]},"content":"1.4.CAP中占据情况"},{"type":"heading","depth":2,"payload":{"lines":[5,6]},"content":"1.3.微服务架构落地实现方案"}]},{"type":"heading","depth":1,"payload":{"lines":[6,7]},"content":"2.搭建项目基础设施","children":[{"type":"heading","depth":2,"payload":{"lines":[7,8]},"content":"2.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[8,9]},"content":"2.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[9,10]},"content":"2.3.创建项目父工程"},{"type":"heading","depth":2,"payload":{"lines":[10,11]},"content":"2.4.创建项目依赖的公共模块"},{"type":"heading","depth":2,"payload":{"lines":[11,12]},"content":"2.5.准备项目需要的数据库"},{"type":"heading","depth":2,"payload":{"lines":[12,13]},"content":"2.6.配置使用热部署"}]},{"type":"heading","depth":1,"payload":{"lines":[13,14]},"content":"3.使用Eureka作为注册中心","children":[{"type":"heading","depth":2,"payload":{"lines":[14,15]},"content":"3.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[15,16]},"content":"3.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[16,17]},"content":"3.3.Eureka注册中心简介"},{"type":"heading","depth":2,"payload":{"lines":[17,18]},"content":"3.4.搭建单节点版EUREKA注册中心"},{"type":"heading","depth":2,"payload":{"lines":[18,19]},"content":"3.5.搭建集群(高可用)版EUREKA注册中心"}]},{"type":"heading","depth":1,"payload":{"lines":[19,20]},"content":"4.搭建第一个微服务应用","children":[{"type":"heading","depth":2,"payload":{"lines":[20,21]},"content":"4.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[21,22]},"content":"4.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[22,23]},"content":"4.3.第一个微服务应用简介"},{"type":"heading","depth":2,"payload":{"lines":[23,24]},"content":"4.4.搭建服务提供者第一个节点"},{"type":"heading","depth":2,"payload":{"lines":[24,25]},"content":"4.5.搭建服务提供者第二个节点"},{"type":"heading","depth":2,"payload":{"lines":[25,26]},"content":"4.6.搭建服务消费者"},{"type":"heading","depth":2,"payload":{"lines":[26,27]},"content":"4.7.启动并测试第一个微服务应用"}]},{"type":"heading","depth":1,"payload":{"lines":[27,28]},"content":"5.使用Ribbon实现客户端负载均衡","children":[{"type":"heading","depth":2,"payload":{"lines":[28,29]},"content":"5.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[29,30]},"content":"5.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[30,31]},"content":"5.3.Ribbon简介"},{"type":"heading","depth":2,"payload":{"lines":[31,32]},"content":"5.4.硬编码配置方式使用Ribbon实现负载均衡(使用Ribbon自带的负载均衡策略)"},{"type":"heading","depth":2,"payload":{"lines":[32,33]},"content":"5.5.声明式配置方式使用Ribbon实现负载均衡(使用Ribbon自带的负载均衡策略)"},{"type":"heading","depth":2,"payload":{"lines":[33,34]},"content":"5.6.硬编码配置方式使用Ribbon实现负载均衡(使用自定义的Ribbon负载均衡策略)"},{"type":"heading","depth":2,"payload":{"lines":[34,35]},"content":"5.7.声明式配置方式使用Ribbon实现负载均衡(使用自定义的Ribbon负载均衡策略)"}]},{"type":"heading","depth":1,"payload":{"lines":[35,36]},"content":"6.使用OpenFeign实现客户端负载均衡","children":[{"type":"heading","depth":2,"payload":{"lines":[36,37]},"content":"6.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[37,38]},"content":"6.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[38,39]},"content":"6.3.OpenFeign简介"},{"type":"heading","depth":2,"payload":{"lines":[39,40]},"content":"6.4.通过配置Ribbon实现对OpenFeign的配置来实现负载均衡"},{"type":"heading","depth":2,"payload":{"lines":[40,41]},"content":"6.5.通过直接配置OpenFeign实现对OpenFeign的配置来实现负载均衡"}]},{"type":"heading","depth":1,"payload":{"lines":[41,42]},"content":"7.使用Hystrix实现服务降级和熔断","children":[{"type":"heading","depth":2,"payload":{"lines":[42,43]},"content":"7.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[43,44]},"content":"7.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[44,45]},"content":"7.3.Hystrix简介"},{"type":"heading","depth":2,"payload":{"lines":[45,46]},"content":"7.4.搭建服务提供者第一个节点(Hystrix)"},{"type":"heading","depth":2,"payload":{"lines":[46,47]},"content":"7.5.搭建服务提供者第二个节点(Hystrix)"},{"type":"heading","depth":2,"payload":{"lines":[47,48]},"content":"7.6.搭建服务消费者(Hystrix)"},{"type":"heading","depth":2,"payload":{"lines":[48,49]},"content":"7.7.测试服务降级和服务熔断(Hystrix)"}]},{"type":"heading","depth":1,"payload":{"lines":[49,50]},"content":"8.使用DashBoard和Turbine监控服务访问情况","children":[{"type":"heading","depth":2,"payload":{"lines":[50,51]},"content":"8.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[51,52]},"content":"8.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[52,53]},"content":"8.3.使用Hystrix DashBoard监控服务单个节点访问情况"},{"type":"heading","depth":2,"payload":{"lines":[53,54]},"content":"8.4.使用Turbine监控服务多个节点访问情况"}]},{"type":"heading","depth":1,"payload":{"lines":[54,55]},"content":"9.使用GateWay实现网关功能","children":[{"type":"heading","depth":2,"payload":{"lines":[55,56]},"content":"9.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[56,57]},"content":"9.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[57,58]},"content":"9.3.GateWay简介"},{"type":"heading","depth":2,"payload":{"lines":[58,59]},"content":"9.4.硬编码配置方式使用GateWay(非负载均衡模式)"},{"type":"heading","depth":2,"payload":{"lines":[59,60]},"content":"9.5.声明式配置方式使用GateWay(非负载均衡模式)"},{"type":"heading","depth":2,"payload":{"lines":[60,61]},"content":"9.6.硬编码配置方式使用GateWay(负载均衡模式)"},{"type":"heading","depth":2,"payload":{"lines":[61,62]},"content":"9.7.声明式配置方式使用GateWay(负载均衡模式)"}]},{"type":"heading","depth":1,"payload":{"lines":[62,63]},"content":"10.使用Zipkin+Sleuth实现调用链路追踪","children":[{"type":"heading","depth":2,"payload":{"lines":[63,64]},"content":"10.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[64,65]},"content":"10.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[65,66]},"content":"10.3.Zipkin、Sleuth简介"},{"type":"heading","depth":2,"payload":{"lines":[66,67]},"content":"10.4.搭建服务提供者第一个节点(Sleuth)"},{"type":"heading","depth":2,"payload":{"lines":[67,68]},"content":"10.5.搭建服务提供者第二个节点(Sleuth)"},{"type":"heading","depth":2,"payload":{"lines":[68,69]},"content":"10.6.搭建服务消费者"},{"type":"heading","depth":2,"payload":{"lines":[69,70]},"content":"10.7.搭建Zipkin"},{"type":"heading","depth":2,"payload":{"lines":[70,71]},"content":"10.8.测试Zipkin+Sleuth实现调用链路追踪"}]},{"type":"heading","depth":1,"payload":{"lines":[71,72]},"content":"11.使用Apollo配置中心管理配置","children":[{"type":"heading","depth":2,"payload":{"lines":[72,73]},"content":"11.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[73,74]},"content":"11.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[74,75]},"content":"11.3.Apollo配置中心简介"},{"type":"heading","depth":2,"payload":{"lines":[75,76]},"content":"11.4.搭建Apollo配置中心"},{"type":"heading","depth":2,"payload":{"lines":[76,77]},"content":"11.5.搭建服务消费者(Apollo)"}]},{"type":"heading","depth":1,"payload":{"lines":[77,78]},"content":"12.使用Seata进行分布式事务控制","children":[{"type":"heading","depth":2,"payload":{"lines":[78,79]},"content":"12.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[79,80]},"content":"12.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[80,81]},"content":"12.3.Seata简介"},{"type":"heading","depth":2,"payload":{"lines":[81,82]},"content":"12.4.搭建Seata Server"},{"type":"heading","depth":2,"payload":{"lines":[82,83]},"content":"12.5.准备数据库环境"},{"type":"heading","depth":2,"payload":{"lines":[83,84]},"content":"12.6.搭建服务提供者Account服务(Seata)"},{"type":"heading","depth":2,"payload":{"lines":[84,85]},"content":"12.6.搭建服务提供者Storage服务(Seata)"},{"type":"heading","depth":2,"payload":{"lines":[85,86]},"content":"12.8.搭建服务消费者"},{"type":"heading","depth":2,"payload":{"lines":[86,87]},"content":"12.8.测试使用Seata进行分布式事务控制"},{"type":"heading","depth":2,"payload":{"lines":[87,88]},"content":"12.9.注意事项"}]},{"type":"heading","depth":1,"payload":{"lines":[88,89]},"content":"13.使用SpringBootAdmin监控服务","children":[{"type":"heading","depth":2,"payload":{"lines":[89,90]},"content":"13.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[90,91]},"content":"13.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[91,92]},"content":"13.3.SpringBootAdmin简介"},{"type":"heading","depth":2,"payload":{"lines":[92,93]},"content":"13.4.搭建SpringBootAdmin的Server端"},{"type":"heading","depth":2,"payload":{"lines":[93,94]},"content":"13.5.搭建SpringBootAdmin的Client端"},{"type":"heading","depth":2,"payload":{"lines":[94,95]},"content":"13.6.测试使用SpringBootAdmin监控服务"}]},{"type":"heading","depth":1,"payload":{"lines":[95,96]},"content":"14.设计适用于生产环境的日志系统","children":[{"type":"heading","depth":2,"payload":{"lines":[96,97]},"content":"14.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[97,98]},"content":"14.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[98,99]},"content":"14.3.适用于生产环境的日志系统简介"},{"type":"heading","depth":2,"payload":{"lines":[99,100]},"content":"14.4.ELK简介"},{"type":"heading","depth":2,"payload":{"lines":[100,101]},"content":"14.5.搭建具有适用于生产环境的日志系统的服务消费端"},{"type":"heading","depth":2,"payload":{"lines":[101,102]},"content":"14.6.搭建ELK"},{"type":"heading","depth":2,"payload":{"lines":[102,103]},"content":"14.7.测试适用于生产环境的日志系统简介"}]},{"type":"heading","depth":1,"payload":{"lines":[103,104]},"content":"15.OpenFeign高级用法","children":[{"type":"heading","depth":2,"payload":{"lines":[104,105]},"content":"15.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[105,106]},"content":"15.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[106,107]},"content":"15.3.搭建服务消费者"},{"type":"heading","depth":2,"payload":{"lines":[107,108]},"content":"15.4.测试OpenFeign高级用法"}]},{"type":"heading","depth":1,"payload":{"lines":[108,109]},"content":"16.使用持续集成快捷部署服务","children":[{"type":"heading","depth":2,"payload":{"lines":[109,110]},"content":"16.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[110,111]},"content":"16.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[111,112]},"content":"16.3.持续集成微服务到Docker中"},{"type":"heading","depth":2,"payload":{"lines":[112,113]},"content":"16.4.持续集成微服务到k8s中"}]},{"type":"heading","depth":1,"payload":{"lines":[113,114]},"content":"17.让微服务区分多种不同环境","children":[{"type":"heading","depth":2,"payload":{"lines":[114,115]},"content":"17.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[115,116]},"content":"17.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[116,117]},"content":"17.3.模块简介"},{"type":"heading","depth":2,"payload":{"lines":[117,118]},"content":"17.4.模块目录结构"},{"type":"heading","depth":2,"payload":{"lines":[118,119]},"content":"17.5.创建模块"},{"type":"heading","depth":2,"payload":{"lines":[119,120]},"content":"17.6.在父工程pom.xml添加多环境配置"},{"type":"heading","depth":2,"payload":{"lines":[120,121]},"content":"17.7.编写模块pom.xml"},{"type":"heading","depth":2,"payload":{"lines":[121,122]},"content":"17.8.编写模块配置文件"},{"type":"heading","depth":2,"payload":{"lines":[122,123]},"content":"17.9.编写模块config"},{"type":"heading","depth":2,"payload":{"lines":[123,124]},"content":"17.10.编写模块service"},{"type":"heading","depth":2,"payload":{"lines":[124,125]},"content":"17.11.编写模块controller"},{"type":"heading","depth":2,"payload":{"lines":[125,126]},"content":"17.12.编写模块主启动类"},{"type":"heading","depth":2,"payload":{"lines":[126,127]},"content":"17.13.搭建Zipkin和ELK"},{"type":"heading","depth":2,"payload":{"lines":[127,128]},"content":"17.14.测试让微服务区分多种不同环境"}]},{"type":"heading","depth":1,"payload":{"lines":[128,129]},"content":"18.使用mycat提升数据库吞吐能力","children":[{"type":"heading","depth":2,"payload":{"lines":[129,130]},"content":"18.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[130,131]},"content":"18.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[131,132]},"content":"18.3.搭建mycat+mysql"},{"type":"heading","depth":2,"payload":{"lines":[132,133]},"content":"18.4.配置mycat"},{"type":"heading","depth":2,"payload":{"lines":[133,134]},"content":"18.5.使用mycat"}]},{"type":"heading","depth":1,"payload":{"lines":[134,135]},"content":"19.使用rancher管理docker和Kubernetes","children":[{"type":"heading","depth":2,"payload":{"lines":[135,136]},"content":"19.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[136,137]},"content":"19.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[137,138]},"content":"19.3.使用rancher管理docker"},{"type":"heading","depth":2,"payload":{"lines":[138,139]},"content":"19.4.使用rancher管理Kubernetes"}]},{"type":"heading","depth":1,"payload":{"lines":[139,140]},"content":"20.综合案例","children":[{"type":"heading","depth":2,"payload":{"lines":[140,141]},"content":"20.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[141,142]},"content":"20.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[142,143]},"content":"20.3.综合案例简介"},{"type":"heading","depth":2,"payload":{"lines":[143,144]},"content":"20.4.在父工程pom.xml添加多环境配置"},{"type":"heading","depth":2,"payload":{"lines":[144,145]},"content":"20.5.搭建单节点版EUREKA注册中心"},{"type":"heading","depth":2,"payload":{"lines":[145,146]},"content":"20.6.搭建服务提供者第一个节点"},{"type":"heading","depth":2,"payload":{"lines":[146,147]},"content":"20.7.搭建服务提供者第二个节点"},{"type":"heading","depth":2,"payload":{"lines":[147,148]},"content":"20.8.搭建服务消费者"},{"type":"heading","depth":2,"payload":{"lines":[148,149]},"content":"20.9.搭建SpringBootAdminServer"},{"type":"heading","depth":2,"payload":{"lines":[149,150]},"content":"20.10.测试适用于生产环境的微服务"}]}],"payload":{}},null)</script>
</body>
</html>
